An important problem in packet video transmission is the variable delay, or delay jitter. Delay jitter can be caused by variable packetization delay and variable queuing delay in the network. Variable packetization delay results from variable bit-rate (VBR) coding and is usually small compared to the variable queuing delay. On the other hand, variable queuing delay depends on the level of network congestion and can vary in a wide range. Such delay jitter needs to be compensated in order to ensure a constant playout of a video bitstream and/or to ensure that the decoder buffer at the receiving video terminal will not overflow.
A state-of-the-art solution for the delay jitter problem is to utilize the so-called time stamp, which is generated at the encoder and is modified by each network node along its route from source to destination. Provided that the maximum end-to-end delay from the source node to the destination node is known and the time stamp can be recovered for each packet, an extra delay, commonly referred to as smoothing delay, is added to each packet such that the overall delay (queuing delay plus smoothing delay) equals a constant for all packets.
FIG. 1, numeral 100, is a general block diagram schematic of a delay jitter smoothing system as is known in the art. The input of the system is video packets with variable delays. These packets are first stored in a packet buffer (102). The time stamp of each packet is recovered by a time recovery device (108) and a smoothing delay unit (104) adds a smoothing delay to the packet. The time recovery device (108) is coupled to the packet buffer (102) and provides its output to the smoothing delay unit (104) which is also coupled to the packet buffer (102). The smoothing delay is equal to the difference between a predetermined maximum delay and the actual delay suffered by each packet. Then the smoothed packets are depacketized into bitstream by a depacketizer unit (106) in a predetermined manner.
In the above system, a complex procedure is involved to implement the time recovery system, because it requires intermediate network nodes to update the time stamp based on the delay encountered in network queues. In addition, the maximum delay of the network has to be known beforehand in order to add the correct amount of smoothing delay in the receiving node. On the other hand, the worst delay for different services at different times may vary depending on the network congestion. If the network traffic load is relatively low during the entire service period, then the queuing delay for all packets may be much smaller than the maximum delay. However, the jitter smoother will still add an extra delay to keep the overall delay constant. Conceivably in this case, a shorter overall delay can be obtained by using an improved smoothing algorithms.
Thus, there is a need for a device and method that provide smoothing delay while concurrently minimizing implementation complexity.